//
//  SqliteTool.h
//  SQLite
//
//  Created by 金色榜样研发组 on 2019/5/28.
//  Copyright © 2019 Golden Bangyang (beijing) Cul Ture Media Investment Co. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface SqliteTool : NSObject

+ (SqliteTool *)shareinstance;
/** 打开/创建 数据库 */
- (BOOL)createSqliteDB;
/** 关闭数据库 */
- (BOOL)closeSqliteDB;
/** 删除数据库 */
- (BOOL)deleteSqliteDB;

/**
 删除数据库中的表格(model类型)

 @param modelClass model类型
 @return 表格是否删除成功
 */
- (BOOL)deleteSQLiteTable:(Class)modelClass;

/**
 往表中插入数据模型(可以是数组(数组中存字典、模型)、字典、模型)

 @param model 字典数组、模型数组、字典、模型
 */
- (void)insertModel:(id)model;


/**
 更新表中的数据(字典、模型)

 @param model 字典、模型
 @param key 键
 @param value 值
 @return 是否成功更新数据库
 */
- (BOOL)updateModel:(id)model withKey:(NSString *)key value:(NSString *)value;


/**
 删除表中的数据(模型类型)

 @param modelClass 模型类型
 @param key 键
 @param value 值
 @return 是否成功从数据库中删除
 */
- (BOOL)deleteModelClass:(Class)modelClass withKey:(NSString *)key value:(NSString *)value;

/**
 删除表中的数据(模型、字典)

 @param model 模型、字典
 @return 是否成功从数据库中删除
 */
- (BOOL)deleteModel:(id)model;

/**
 查看表中的所有数据(模型类型)

 @param modelClass 模型类型
 @return 表中的所有数据
 */
- (NSArray *)selectAllModel:(Class)modelClass;

/** 查询表中的数据 */
/**
 查看表中的数据(模型类型)

 @param modelClass 模型类型
 @param key 键
 @param value 值
 @return 查询到的数据数组
 */
- (NSArray *)selectModel:(Class)modelClass withKey:(NSString *)key value:(NSString *)value;


@end

NS_ASSUME_NONNULL_END
